/***********************************************
This class maintains the genome information of an NCU.
In an NCU, the upper bounds and the lower bounds of all sills are all the same.
The numbers of the digits of all sills are also the same.
The numbers of the digits of the coded strings of the parameters are stored in this class.
Author:Chun-Ming Wang
Date of Modification: 25/10/2007 (dd/mm/yyyy)
***********************************************/
#pragma once
#ifndef _NCUGenomeSet
#define _NCUGenomeSet
#include "VentGenome.h"
#include "SillGenome.h"
class NCUGenomeSet
{
public:
	NCUGenomeSet();
	NCUGenomeSet(const double sillLow, const double sillUp, unsigned int outLen, unsigned int sillLen);
	NCUGenomeSet(const NCUGenomeSet &rhs);
	virtual ~NCUGenomeSet();
    void SillUpper(const double value);
	double SillUpper() const;
	void SillLower(const double value);
	double SillLower() const;
	void VentLength(const unsigned int num);
	unsigned int VentLength() const;
	void SillLength(const unsigned int num);
	unsigned int SillLength() const;
	unsigned int VentPrecision(const double acu);
	double VentPrecision() const;
	unsigned int SillPrecision(const double acu);
	double SillPrecision() const;
	const GenomeType& GetSillGenome() const;
	const GenomeType& GetVentGenome() const;
	NCUGenomeSet& operator=(const NCUGenomeSet &rhs);
private:
	VentGenome m_vent;
	SillGenome m_sill;
};
#endif